package com.yanfan.maintain.service;


import com.yanfan.iot.domain.Device;
import com.yanfan.maintain.domain.ControlFormwork;
import com.yanfan.maintain.domain.ControlRuleRequest;

import java.util.List;
import java.util.Map;

/**
 * 头注释Service接口
 *
 * @author kerwincui
 * @date 2023-03-13
 */
public interface IControlFormworkService {
    /**
     * 查询头注释
     *
     * @param id 头注释主键
     * @return 头注释
     */
    public ControlFormwork selectControlFormworkById(Long id);

    /**
     * 查询头注释列表
     *
     * @param controlFormwork 头注释
     * @return 头注释集合
     */
    public List<ControlFormwork> selectControlFormworkList(ControlFormwork controlFormwork);

    /**
     * 新增头注释
     *
     * @param controlFormwork 头注释
     * @return 结果
     */
    public int insertControlFormwork(ControlFormwork controlFormwork);

    /**
     * 修改头注释
     *
     * @param controlFormwork 头注释
     * @return 结果
     */
    public int updateControlFormwork(ControlFormwork controlFormwork);

    /**
     * 批量删除头注释
     *
     * @param ids 需要删除的头注释主键集合
     * @return 结果
     */
    public int deleteControlFormworkByIds(Long[] ids);

    /**
     * 删除头注释信息
     *
     * @param id 头注释主键
     * @return 结果
     */
    public int deleteControlFormworkById(Long id);

    void addDevice(List<ControlRuleRequest> controlRuleRequest);

    List<Map> getParam(String category, Long deviceId);

    List<Map> getCategory();

    List<Map> getCondition();

    List<Map> getIotDataType();

    List<Map> getAttr();

    List<ControlRuleRequest> getDeviceByFormworkId(Long formworkId);

    List<Device> getDeviceList(String text);
}
